class A extends (() => {}) {}
class A extends (B = C) {}
class A extends (B || C) {}
class A extends (B + C) {}
class A extends B() {}
class A extends class {} {}
class A extends (B ? C : D) {}
class A extends (new B()) {}
class A extends (B, C) {}
class A extends ({}) {}
class A extends B.C {}
class A extends function() {} {}
class A extends (void B) {}
class A extends (++B) {}

async function f() {
  class A extends (await C) {}
}

function* f() {
  class A extends (yield 1) {}
}
